﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FrbaBus.AbmCiudades;
using FrbaBus.AbmRecorrido;
using FrbaBus.AbmMicro;
using System.Data.SqlClient;
using FrbaBus.Listados;
using FrbaBus.GenerarViaje;
using FrbaBus.CanjedePtos;
using FrbaBus.Devolucion;
using FrbaBus.CompraProducto;
using FrbaBus.RegistrarLLegadaMicro;
namespace FrbaBus   
{
    public partial class FormLogueado : Form
    {
        public FormLogueado()
        {
            InitializeComponent();
        }

        private void FormLogueado_Load(object sender, EventArgs e)
        {
            //VERIFICO LOS ROLES DEL USUARIO LEFT JOIN FUNCIONALIDADES DEL ROL QUE ESTÉN AUTORIZADOS
            //SI EL INDICE DE LA FUNCIONALIDAD ESTÁ AUTORIZADO, PONGO EN VISIBLE LA FUNCIONALIDAD
            //PONGO OCULTOS TODOS LOS ROLES Y LOS MUESTRO SI ESTÁN AUTORIZADOS

            btnAbmRol.Visible = false;
            btnAbmCiudades.Visible = false;
            btnAbmMicro.Visible = false;
            btnAbmRecorrido.Visible = false;
            btnGenerarViaje.Visible = false;
            btnCanjePuntos.Visible = false;
            btnCompraProductos.Visible = false;
            btnRegistroLlegadaMicro.Visible = false;
            btnListados.Visible = false;
            btnDevolucion.Visible = false;

            string query = "";
            query = "SELECT F.funci_codigo, F.funci_nombre ";
            query += "FROM THE_BEST_IAS.usuarios AS US ";
            query += "LEFT JOIN THE_BEST_IAS.rol_funcionalidades AS RF ON RF.rol_codigo = US.rol_codigo ";
            query += "LEFT JOIN THE_BEST_IAS.funcionalidades AS F ON F.funci_codigo = RF.funci_codigo ";
            query += "WHERE US.usu_codigo = " + UsuarioLogueado.userId + " AND RF.rofu_habilitado = 1 ";


            SqlDataReader dr = DbHelper.ExecuteQuery(query);

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    switch (Convert.ToInt16(dr["funci_codigo"].ToString()))
                    {
                        case 1: btnAbmRol.Visible = true;
                            break;
                        case 2: btnAbmCiudades.Visible = true;
                            break;
                        case 3: btnAbmRecorrido.Visible = true;
                            break;
                        case 4: btnAbmMicro.Visible = true;
                            break;
                        case 6: btnGenerarViaje.Visible = true;
                            break;
                        case 7: btnDevolucion.Visible = true;
                            break;
                        case 9: btnCanjePuntos.Visible = true;
                            break;
                        case 5: btnCompraProductos.Visible = true;
                            break;
                        case 8: btnRegistroLlegadaMicro.Visible = true;
                            break;
                        case 10: btnListados.Visible = true;
                            break;
                    }
                }
            }
            dr.Close();
        }

        private void formAbmRol_Click(object sender, EventArgs e)
        {
            this.Hide();

            FormAbmRol form = new FormAbmRol();
            form.ShowDialog(this);

        }
        private void formAbmCiudades_Click(object sender, EventArgs e)
        {
            FormAbmCiudades form = new FormAbmCiudades();
            form.ShowDialog(this);

        }
        private void formAbmRecorrido_Click(object sender, EventArgs e)
        {

            FormAbmRecorrido form = new FormAbmRecorrido();
            form.ShowDialog(this);

        }

        private void formAbmMicro_Click(object sender, EventArgs e)
        {

            FormAbmMicro form = new FormAbmMicro();
            form.ShowDialog(this);

        }

        private void buCerrar_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void button12_Click(object sender, EventArgs e)
        {
            FormAbmCiudades formAbm = new FormAbmCiudades();
            formAbm.ShowDialog();
        }

        private void btnListados_Click(object sender, EventArgs e)
        {
            FormListados form = new FormListados();
            form.ShowDialog(this);
        }

        private void btnGenerarViaje_Click(object sender, EventArgs e)
        {
            FormGenerarViaje form = new FormGenerarViaje();
            form.ShowDialog(this);
        }

        private void btnCanjePuntos_Click(object sender, EventArgs e)
        {
            IngresoDatosCliente form = new IngresoDatosCliente();
            form.ShowDialog(this);
        }

        //private void btnRegistroLlegadaMicro_Click(object sender, EventArgs e)
        //{
        //    FormRegistroLlegada form = new FormRegistroLlegada();
        //    form.ShowDialog(this);
        //}

        private void btnDevolucion_Click(object sender, EventArgs e)
        {
            FormDevolucion form = new FormDevolucion();
            form.ShowDialog(this);
        }
        private void btnCompraProductos_Click(object sender, EventArgs e)
        {
            FormCompraProducto form = new FormCompraProducto(-1);   //(-1) Indica que es admin
            form.ShowDialog(this);
        }

        private void btnRegistroLlegadaMicro_Click(object sender, EventArgs e)
        {
            FormRegistroLlegada form = new FormRegistroLlegada();
            form.ShowDialog(this);
        }
    }
}
